package com.linkai.多线程._01_Thread_Runnable;

/**
 * @Description: 多个线程操作同一个对象
 *                买火车票的问题
 *                多个线程操作同一个资源的情况下，线程不安全，数据紊乱
 *                黄牛拿到了第10票
 *                老师拿到了第9票
 *                小明拿到了第8票
 *                黄牛拿到了第7票
 *                老师拿到了第6票
 *                小明拿到了第5票
 *                黄牛拿到了第3票
 *                老师拿到了第2票
 *                小明拿到了第4票
 *                老师拿到了第0票
 *                小明拿到了第1票
 *                黄牛拿到了第-1票
 * 进程已结束，退出代码 0
 * @Author: 林凯
 * @Date: 2021/10/19 16:55
 */
public class TestThread4_Ticket implements Runnable {

    private int ticketNums = 10;

    public void run() {
        while (true) {
            if (ticketNums <= 0) {
                break;
            }
            try {
                Thread.sleep(200);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + "拿到了第" + ticketNums-- + "票");
        }
    }

    public static void main(String[] args) {
        TestThread4_Ticket testThread4Ticket = new TestThread4_Ticket();
        new Thread(testThread4Ticket, "小明").start();
        new Thread(testThread4Ticket, "老师").start();
        new Thread(testThread4Ticket, "黄牛").start();
    }
}
